# tts_engine.py
import os
import asyncio
import edge_tts  # 微软Edge语音引擎
import sys


class VoiceOutput:
    def __init__(self, voice='zh-CN-YunjianNeural'):
        self.voice = voice

    def text_to_speech(self, text):
        communicate = edge_tts.Communicate(text, self.voice)
        asyncio.run(communicate.save('output.mp3'))
        # 推流至直播音频设备（需配合OBS虚拟声卡）
        os.system('ffplay -nodisp -autoexit output.mp3')

    # 如果用户需要自己回复
    # 单独运行此文件
    # 通过命令行传入参数
    # python tts_engine.py "你好"
    def main(self):
        # 等待用户输入文本
        while True:
            text = input('请输入要合成语音的文本：')
            self.text_to_speech(text)

if __name__ == '__main__':
    VoiceOutput().main()